perm filename SMPLIN.FAI[2,LCS] blob
sn#309748 filedate 1977-10-12 generic text, type C, neo UTF8
COMMENT ā VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 ******** THIS IS STANFORD (IRCAM) VERSION ******
C00006 00003 UNPAC: 0 CALL UNPAC(PW,AR)
C00010 ENDMK
Cā;
; ******** THIS IS STANFORD (IRCAM) VERSION ******
TITLE SMPLIN ; ********* USE WITH SMPLS.F4 *******
INTERNAL UNPAC,GETFIL,FASTIN
;; INTERNAL UNPAC,GETFIL,FASTIN,NODM,YESDM
EXTERNAL JUNPAC
CH3ā13
DEFINE ERROR (MSG)
< JSA 16,.ERROR
JUMP [ASCIZ/MSG/
]
>
;CALL GETFIL(<FILE>,WDCNT) ******** RETURNS THE WD CNT.
FILNAM: 0
FILNM2: 0
GETFIL: 0
MOVE 1,(16)
MOVE 0,(1)
MOVEM 0,FILNAM
AOS 1
MOVE 0,(1)
MOVEM 0,FILNM2
;; PUSHJ 17,INTFIZ
JSA 16,INTFIZ
MOVE 0,[SIXBIT/SND/]
MOVEM 0,DIR+1
;; MOVEM 0,DIR+3
;; PUSHJ 17,LKUP
JSA 16,LKUP
; EXIT
; SETZM DIR+1
; JSA 16,LKUP
GETF3: MOVS 0,DIR+3 ;GET THE WD CNT. (INCLUDES HEADER)
MOVNM 0,@1(16) ;DON'T FORGET IT'S FIXED POINT
JRA 16,1(16)
;; POPJ 17,
; 0
;GETF3: JRA 16,1(16)
INTFIZ: 0 ;INITS DSK FOR INPUT
;; MOVEI REGS
;; BLT REGS+3
INIT CH3,17
SIXBIT/DSK/
0
ERROR <CAN'T INIT DSK!>
INTF4: MOVE 0,FILNAM#
MOVEM 0,FN#
MOVE 1,[POINT 7,FN]
;;INTF3: MOVE 2,[POINT 6,DIR+2]
;; SETZM DIR+2
INTF3: MOVE 2,[POINT 6,DIR]
SETZM DIR
MOVEI 3,5
INTF1: ILDB 0,1
CAIN 0," "
;; POPJ 17,
JRA 16,0(16)
SUBI 0,40
IDPB 0,2
SOJG 3,INTF1
MOVE 0,FILNM2
MOVEM 0,FN#
MOVE 1,[POINT 7,FN]
JRST INTF1-1
LKUP: 0
;; SETZM DIR+4
;; SETZM DIR+1
SETZM DIR+2
SETZM DIR+3
LOOKUP CH3,DIR
EXIT
;; POPJ 17,
JRA 16,0(16)
DIR: 5
BLOCK 5
;CALL FASTIN(<ARRAY>,<NO. WORDS>)
FASTIN: 0
HRRZ 0,0(16)
SUBI 0,1
MOVEM 0,COM
MOVN 0,@1(16)
HRLM 0,COM
INPUT CH3,COM
; STATZ CH3,020000
; JRST EOF
STATZ CH3,740000
JRST 4,. ;SAME AS HALT.
;; POPJ 17,
JRA 16,2(16)
COM: OCT 0,0
COM1: 0
BLKNUM: 0
.ERROR: 0
OUTSTR [ASCIZ/?
/] ;MAKE SURE HE CAN SEE HIS ERROR
OUTSTR @(16) ;OUTPUT ERROR MESSAGE
CALLI 1,12 ;LET USER CONTINUE
JRA 16,1(16)
UNPAC: 0 ;CALL UNPAC(PW,AR)
HRRZ 1,1(16)
MOVE 2,@0(16)
SKIPE JUNPAC
JRST HALFWD
ADDI 1,2
LSHC 2,-14
;; LSHC 2,-10 ;FOR 8-BIT
ASH 3,-30
;; ASH 3,-34
;; FLTR 3,3 ;ALL SAMPLES MUST BE IN FLOATING POINT.
MOVEM 3,@1 ; FIXED POINT IN THIS VERSION
SOJ 1,
LSHC 2,-14
;; LSHC 2,-16 ;FOR 14-BIT
ASH 3,-30
;; ASH 3,-26
;; FLTR 3,3 ;ALL SAMPLES MUST BE IN FLOATING POINT.
MOVEM 3,@1
SOJ 1,
LSHC 2,-14
;; LSHC 2,-16
ASH 3,-30
;; ASH 3,-26
;; FLTR 3,3 ;ALL SAMPLES MUST BE IN FLOATING POINT.
MOVEM 3,@1
JRA 16,2(16)
;; POPJ 17,
;;HALFWD: ADDI 1,1
HALFWD: HLRE 3,2 ; GET LEFT HALF (1ST SAMPLE)
;; FLTR 3,3
MOVEM 3,(1)
HRRE 3,2 ; GET RIGHT HALF - 2ND SMPL
;; FLTR 3,3 ; HRRE THE 'E'=EXTEND - KEEPS RIGHT SIGN.
MOVEM 3,1(1)
JRA 16,2(16)
;; POPJ 17,
END